/*
 * Copyright 2011 Clean GWT
 * 
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
 * in compliance with the License. You may obtain a copy of the License at
 * 
 * http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software distributed under the License
 * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
 * or implied. See the License for the specific language governing permissions and limitations under
 * the License.
 */
package com.cleangwt.showcase.client.page;

import java.util.Arrays;

import com.cleangwt.bootstrap.client.ui.Alert;
import com.cleangwt.bootstrap.client.ui.HeadingLayoutPanel;
import com.cleangwt.page.client.PageContext.CodeSplit;
import com.cleangwt.page.client.PageContext.Page;
import com.cleangwt.page.client.PageContext.PageParameterAware;
import com.cleangwt.page.client.PageContext.Prefetch;
import com.cleangwt.page.client.ResizePage;
import com.cleangwt.showcase.client.ProvidesSource;
import com.cleangwt.showcase.client.component.PageHeader;
import com.cleangwt.showcase.client.resource.PageGroups;
import com.cleangwt.showcase.client.resource.i18n.ShowcaseMessages;
import com.cleangwt.uibinder.client.RequiresTemplate;

/**
 * 
 * @author Jess
 * @version 1.0
 * @since 1.0
 */
@Prefetch(PageGroups.TUTORIAL)
@CodeSplit
@Page
// @UiTemplate("PageContextTutorial.html")
public abstract class PageContextTutorial extends ResizePage implements RequiresTemplate,
    PageParameterAware, ProvidesSource {
  private HeadingLayoutPanel shell = new HeadingLayoutPanel();
  private PageHeader pageHeader;

  public PageContextTutorial() {
    pageHeader =
        new PageHeader(
            ShowcaseMessages.Impl.pageContext(),
            "Build your web application start from PageContext, Check out the entry point <code>Showcase.java.</code>",
            "Showcase.java ShowcasePageFilter.java PageContextTutorial.java");
    shell.setHeaderWidget(pageHeader);
    shell.setContentWidget(this.createTemplate());
    initWidget(shell);
  }

  @Override
  public void setPageParameters(String[] params) {
    if (params == null) {
      Alert.alert("No page parameter");
    } else {
      Alert.alert("The Page parameters : " + Arrays.asList(params));
    }
  }

}